$(document).ready(function() { 
    jQuery.validator.addMethod("validaEstado", function(value, element){
        if($('#dlg-estado').text().length < 2)
            return false; 
        return true;
   });
    jQuery.validator.addMethod("validaCiudad", function(value, element){
        if($('#dlg-ciudad').text().length < 2)
            return false;
        return true;
   });
    jQuery.validator.addMethod("validaTitulo", function(value, element){
        if($('#titulo-titulo').text().length < 2)
            return false;
        return true;
   });
    jQuery.validator.addMethod("validaPaq", function(value, element){
        if($('#dlg-paq').text().length < 2)
            return false;        
        return true;
   });
    jQuery.validator.addMethod("validaEmpresa", function(value, element){
        if($(element).parent().find('.empresa-tel').text().length < 2)
            return false;      
        return true;
   });
   
   filtroDeTabla();   
   clickRenglon();
}); 
$(function(){
    $('#dlg-modal').hide();//oculta el dialogo modal
    $('#contenido-forma').hide();//oculta la forma que contiene la informaciln para el dialogo modal
    $('#confirmar-cambios-modal').hide();//oculta el cialogo modal de confirmacion de cambios
    $('.modificar-modal').bind('click', function(e) {//se le asigna el evento click al boton modificar d ela tabla principal
        e.preventDefault();
        funcionModificar(activo);
        funcionValidar();
    });
    $('.agregar-modal').bind('click', function(e) {//se le asigna el evento click al boton modificar d ela tabla principal
        e.preventDefault();
        funcionAgregar();        
        funcionValidar();
    });
    $('.eliminar-modal').bind('click', function(e) {
        e.preventDefault();
        funcionEliminar(activo);    
    }); 
    
});

////////Seccion Validar Datos//////////
function funcionValidar(){
     $('#forma-modal').validate({ // initialize the plugin
         // Specify the validation rules
        rules: {
            comercial: {
                minlength: 3,
                required: true
            },
            nombre:{
                minlength: 3,
                required: true
            },
            apellidos: "required", 
            razon: "required",
            rfc: "required",
            repre: "required",
            calle: "required", 
            colonia: "required",             
            cp: {
                required: true, 
                digits: true,
                minlength: 5,
                maxlength: 5
            },
            estadoinput: "validaEstado",
            ciudadinput: "validaCiudad",         
            paqinput: "validaPaq",
            tituloinput: "validaTitulo"
        },
            
        tooltip_options:{
            comercial: {  placement: 'top' },
            nombre:{  placement: 'top' },
            apellidos: {  placement: 'top' },
            razon: {  placement: 'top' },
            rfc: {  placement: 'top' },
            repre: {  placement: 'top' },
            calle: {  placement: 'top' },
            colonia: {  placement: 'top' },
            cp: {  placement: 'top' },
            estadoinput: {  placement: 'bottom' },
            ciudadinput: {  placement: 'bottom' },
            tituloinput: {  placement: 'bottom' },
            paqinput: {  placement: 'bottom' }
        },
        // Specify the validation error messages
        messages: {
            comercial: {
                required: "Campo Requerido",
                minlength: "Minimo 3 Caracteres"
            },
            nombre:{
                required: "Campo Requerido",
                minlength: "Minimo 3 Caracteres"
            },
            apellidos: "Campo Requerido",
            razon: "Campo Requerido",
            rfc: "Campo Requerido",
            repre: "Campo Requerido",
            calle: "Campo Requerido",
            colonia: "Campo Requerido",        
            cp: {
                required: "Campo Requerido",
                digits: "Solo Usar Digitos",
                maxlength: "Solo 5 Digitos",
                minlength: "Campo Incompleto"
            },
            estadoinput: "Selecciona Estado",
            ciudadinput: "Selecciona Ciudad",         
            paqinput: "Selecciona Paqueteria",
            tituloinput: "Selecciona Titulo"       
        }
    }); 
    funcionValidarDinamicos();
}
function funcionValidarDinamicos(){
    $(".tel-modal").each(function(){
        $(this).rules("add", {
           required: true,
           minlength: 7,
           messages:{
               required: "Campo Requerido",
               minlength: "Minimo 7 numeros"
           }
        });
        $(this).tooltip({position: "top"});
    });
    $(".correo-modal").each(function(){
        $(this).rules("add", {
           required: true,
           email: true,
           messages:{
               required: "Campo Requerido",
               email: "Debe ser un correo"
           }
        });
        $(this).tooltip({position: "top"});
    });
    $(".empresa-modal").each(function(){
        $(this).rules("add", {
           validaEmpresa: true,
           messages:{
               validaEmpresa: "Campo Requerido"
           }
        }); 
        $(this).tooltip({placement: "bottom"});
    });
}

/////////Seccion Agregar////////////////
////////////////////////////////////////
function funcionAgregar(){
    preparaAgregarModal();
    $('#dlg-modal').bPopup({ 
        speed: 200,
        transition: 'slideDown',onClose: function(){
            cerrandoModal();
        }
    }); 
    $('.aceptar-modal').attr('id','agregar-boton');
    $('.cancelar-modal').bind('click',function(){ 
                $('#dlg-modal').bPopup().close();
            });
    $('#agregar-boton').bind('click',function(){
        $('#borde-int-confirmar').html('<br><br>¿Está seguro que <br><br>desea dar de alta<br> <br>el cliente?'
                                        +'<div class="btn btn-success" id="confirmar-cambios">Agregar</div><div class="btn btn-danger" id="cancelar-cambios">Cancelar</div>');
                if($('#forma-modal').valid()){
                        $('#confirmar-cambios-modal').bPopup({
                            speed: 200,
                            transition: 'slideDown',onClose: function(){
                                $('#cancelar-cambios').unbind('click');
                                $('#confirmar-cambios').unbind('click');
                            }
                        }); 
                        $('#cancelar-cambios').bind('click',function(){ 
                            $('#confirmar-cambios-modal').bPopup().close();
                        });
                        $('#confirmar-cambios').click(function(){
                            agregarCliente();
                        });
                }
                else
                    alert("Verifique los campos");
    });
}
function preparaAgregarModal(){
    $('#dlg-modal #contenido').html($('#contenido-forma').html());
    $('#contenido-forma').html('');
    $('.titulo-modal').html('Agregar Registro');
    $('#forma-modal').addClass('cliente-modal-forma');
    $.post(rutaObtenerFecha,{},function(fecha){
        llenaForma2(fecha);
        agregaEventos();
        $('.aceptar-modal').html('Agregar');
        $('.cancelar-modal').html('Cancelar');
        $('.aceptar-modal').attr('id','agregar-boton');
    });
}
function agregarCliente(){
    var persona = 1,distri = 0,tel,correo;
    var telefonos = new Array();
    var correos = new Array();
    
    if($('#dlg-moral').is(':checked'))
        persona = 0;
    if($('#dlg-distri').is(':checked'))
        distri = 1;
    $('#dlg-tabla-body').find('tr').each(function(){
        tel = new Array();
        tel[0] = $(this).find('.tel-modal').val();
        tel[1] = $(this).find('.ext-modal').val();
        tel[2] = $(this).find('.empresa-tel').text();
        telefonos.push(tel);
    });
    $('#dlg-tabla-body2').find('tr').each(function(){
        correo = new Array();
        correo[0] = $(this).find('.correo-modal').val();
        correos.push(correo);
    });
    $('#dlg-modal').bPopup().close();
    $('#confirmar-cambios-modal').bPopup().close();
    $.post(
        rutaAgregar,{
            fecha_alta:$('#dlg-fecha').val(),
            persona:persona,
            titulo:$('#titulo-titulo').text(),
            distribuidor:distri,
            nombre:$('#dlg-nombre').val(),
            nombre_comercial:$('#dlg-comercial').val(),
            apellidos:$('#dlg-apellidos').val(),
            representante:$('#dlg-repre').val(),
            razon_social:$('#dlg-razon').val(),
            rfc:$('#dlg-rfc').val(),
            calle_num:$('#dlg-calle').val(),
            colonia:$('#dlg-colonia').val(),  
            cp:$('#dlg-cp').val(),
            ciudad:$('#dlg-ciudad').text(),
            estado:$('#dlg-estado').text(),
            observaciones:$('#dlg-obs').val(),
            paqueteria:$('#dlg-paq').text(),
            clave:$('#dlg-clave').val(),
            telefonos:JSON.stringify(telefonos),
            correos:JSON.stringify(correos)
        },
        function(nuevo){
            if(nuevo==null){
                alert('El cliente no fue agregado!');
                return;
            }
            var dist, renglon;
            if(nuevo['distribuidor']==1)
                dist = 'Si';
            else
                dist = 'No';
            tabla.fnAddData( [
                nuevo['id'],
                nuevo['nombre_comercial'],
                dist]);
            tabla.$('tr').each(function(){
               $(this).find('td:nth-child(1)').addClass('id-tabla'); 
               $(this).find('td:nth-child(2)').addClass('comercial-tabla'); 
               $(this).find('td:nth-child(3)').addClass('distribuidor-tabla'); 
            });
            quitaClickRenglon();
            todos[todos.length] = nuevo;
            alert('Cliente agregado!');
            clickRenglon();
         //   $("#tabla-principal").trigger("update");
        });
}
////////////////////////////////////////
//////////////Fin Agregar///////////////





/////////Seccion Modificar//////////////
////////////////////////////////////////
function funcionModificar(elemento){
    var id_ele = elemento; // elemento.parent().parent().find('td:first').html();//se obtiene el id del elemento al que se le dio click
    todos.forEach(function(c){
        if(c['id']==id_ele){
            preparaModificarModal(c);
            $('.aceptar-modal').attr('id','modificar-boton');
            $('#dlg-modal').bPopup({ 
                speed: 200,
                transition: 'slideDown',onClose: function(){
                    cerrandoModal();
                }
            }); 
            $('.cancelar-modal').bind('click',function(){ 
                $('#dlg-modal').bPopup().close();
            });
            $('#modificar-boton').bind('click',function(){
                $('#borde-int-confirmar').html('<br><br>¿Está seguro que <br><br>desea guardar los<br> <br>cambios?'
                                                +'<div class="btn btn-success" id="confirmar-cambios">Guardar</div><div class="btn btn-danger" id="cancelar-cambios">Cancelar</div>');
                if($('#forma-modal').valid()){
                    $('#confirmar-cambios-modal').bPopup({ 
                        speed: 200,
                        transition: 'slideDown',onClose: function(){
                            $('#cancelar-cambios').unbind('click');
                            $('#confirmar-cambios').unbind('click');
                        }
                    }); 
                    $('#cancelar-cambios').bind('click',function(){ 
                        $('#confirmar-cambios-modal').bPopup().close();
                    });
                    $('#confirmar-cambios').click(function(){
                        modificarCliente();
                    });
                }
            });
            return;
        }
    });
}
function preparaModificarModal(c){
    $('#dlg-modal #contenido').html($('#contenido-forma').html());
    $('#contenido-forma').html('');
    $('.titulo-modal').html('Modificar Registro');
    $('#forma-modal').addClass('cliente-modal-forma');
    llenaForma(c);
    agregaEventos();
    $('#titulo-titulo').attr('data-toggle','dropdown');
    $('#dlg-moral-label').show();
    $('#dlg-fisica-label').show();
    $('#dlg-clave-label').show();
    $('#dlg-clave').show();
    $('#dlg-fisica').show();
    $('#dlg-moral').show();
    $('#dlg-estado').attr('data-toggle','dropdown');
    $('#dlg-ciudad').attr('data-toggle','dropdown');
    $('.elimina-correo').show();
    $('.elimina-tel').show();
    $('.empresa-tel').attr('data-toggle','dropdown');
    $('#nuevo-correo').show();
    $('#nuevo-telefono').show();
    $('#dlg-paq').attr('data-toggle','dropdown');
    $('.aceptar-modal').show();
    $('.cancelar-modal').show();
    $('.aceptar-modal').html('Guardar');
    $('.cancelar-modal').html('Cancelar');
}
function modificarCliente(){
    var persona = 1,distri = 0,tel,correo;
    var telefonos = new Array();
    var correos = new Array();
    
    if($('#dlg-moral').is(':checked'))
        persona = 0;
    if($('#dlg-distri').is(':checked'))
        distri = 1;
    $('#dlg-tabla-body').find('tr').each(function(){
        tel = new Array();
        tel[0] = $(this).find('.tel-modal').val();
        tel[1] = $(this).find('.ext-modal').val();
        tel[2] = $(this).find('.empresa-tel').text();
        telefonos.push(tel);
    });
    $('#dlg-tabla-body2').find('tr').each(function(){
        correo = new Array();
        correo[0] = $(this).find('.correo-modal').val();
        correos.push(correo);
    });
    $('#dlg-modal').bPopup().close();
    $('#confirmar-cambios-modal').bPopup().close();
//    $('#dlg-nombre').show();
//    $('#dlg-apellidos').show();
//    $('#dlg-razon').show();
    $.post(
        rutaModificar,{
            id:$('#dlg-id').val(),
            fecha_alta:$('#dlg-fecha').val(),
            persona:persona,
            titulo:$('#titulo-titulo').text(),
            distribuidor:distri,
            nombre:$('#dlg-nombre').val(),
            nombre_comercial:$('#dlg-comercial').val(),
            apellidos:$('#dlg-apellidos').val(),
            representante:$('#dlg-repre').val(),
            razon_social:$('#dlg-razon').val(),
            rfc:$('#dlg-rfc').val(),
            calle_num:$('#dlg-calle').val(),
            colonia:$('#dlg-colonia').val(),  
            cp:$('#dlg-cp').val(),
            ciudad:$('#dlg-ciudad').text(),
            estado:$('#dlg-estado').text(),
            observaciones:$('#dlg-obs').val(),
            paqueteria:$('#dlg-paq').text(),
            telefonos:JSON.stringify(telefonos),
            correos:JSON.stringify(correos)
        },
        function(elemento){
            if(elemento==null){
                alert('El cliente no fue modificado!');
                return;
            }
            for(var i = 0;i<todos.length;i++){
                if(todos[i]['id']==elemento['id']){
                    todos[i] = elemento;
                    break;
                }
            }
            if(elemento['distribuidor']!=0)
                elemento['distribuidor']='Si';
            else
                elemento['distribuidor']='No';
            if(elemento['persona']!=0)
                elemento['nombre_comercial']=elemento['nombre']+' '+elemento['apellidos'];
            var indice = tabla.fnGetPosition(tabla.$('tr.seleccionado')[0]);
            tabla.fnUpdate([
                elemento['id'],
		elemento['nombre_comercial'],
		elemento['distribuidor']],
                indice
            );
            $('.dos-botones .btn').attr('disabled','disabled');
            alert('Cliente modificado!');
        });
}
////////////////////////////////////////
/////////////Fin Modificar//////////////



/////////Seccion Eliminar///////////////
////////////////////////////////////////
function funcionEliminar(elemento){
    var id_ele = elemento;//elemento.parent().parent().find('td:first').html();//se obtiene el id del elemento al que se le dio click
    $('#borde-int-confirmar').html('<br><br>¿Está seguro que <br><br>desea eliminar el<br> <br>registro con id '+ id_ele +'?<br><br>'
                                    +'El registro no se podrá recuperar'
                                    +'<div class="btn btn-success" id="confirmar-cambios">Aceptar</div><div class="btn btn-danger" id="cancelar-cambios">Cancelar</div>');
    $('#confirmar-cambios-modal').bPopup({ 
        speed: 200,
        transition: 'slideDown',onClose: function(){
            $('#cancelar-cambios').unbind('click');
            $('#confirmar-cambios').unbind('click');
        }
    }); 
    $('#cancelar-cambios').bind('click',function(){ 
        $('#confirmar-cambios-modal').bPopup().close();
    });
    $('#confirmar-cambios').click(function(){
        eliminarCliente(id_ele);
    });
}
function eliminarCliente(id){
    $('#confirmar-cambios-modal').bPopup().close();
    $.post(
        rutaEliminar,
        {id: id},
        function(elemento){
            if(elemento['eliminado']==false){
                alert('El cliente no fue eliminado!');
                return;
            }
            for(var i = 0;i<todos.length;i++){
                if(todos[i]['id']==elemento['id']){
                    todos.splice(i,1);
                    break;
                }
            }
            tabla.fnDeleteRow( tabla.$('tr.seleccionado')[0]);
            $('.dos-botones .btn').attr('disabled','disabled');
            alert('Cliente eliminado!');
        });
}
////////////////////////////////////////
/////////////Fin Eliminar///////////////


///llenado de informacion y eventos///
//////////////////////////////////////
function llenaForma(c){
    var telefonos = '';
    var correos = '';
    $('#forma-modal').addClass('form-inline');
    $('#dlg-id').val(c['id']);
    $('#dlg-id').attr('readonly','true');
    $('#dlg-fecha').attr('readonly','true');
    if(c['persona']==0){//persona moral
        $('#dlg-moral').attr('checked',true);
        $('#dlg-razon-label').show();
        $('#dlg-razon').show();
        $('#dlg-nombre-label').hide();
        $('#dlg-nombre').hide();
        $('#dlg-apellidos-label').hide();
        $('#dlg-apellidos').hide();
        $('#dlg-rfc-label').css('margin-left','500px');
        $('#dlg-moral-label').css('text-decoration','underline');
        $('#dlg-moral-label').css('text-decoration-color','red');
    }
    else{//persona fisica
        $('#dlg-fisica').attr('checked',true);
        $('#dlg-nombre-label').show();
        $('#dlg-nombre').show();
        $('#dlg-apellidos-label').show();
        $('#dlg-apellidos').show();
        $('#dlg-razon-label').hide();
        $('#dlg-razon').hide();
        $('#dlg-rfc-label').css('margin-left','0px');
        $('#dlg-fisica-label').css('text-decoration','underline');
        $('#dlg-fisica-label').css('text-decoration-color','red');
    }
    $('#titulo-titulo').html(c['titulo']+'<span class="caret"></span>');
    if(c['distribuidor']==1){
        $('#dlg-distri-label').css('text-decoration','underline');
        $('#dlg-distri-label').css('text-decoration-color','red');
        $('#dlg-clave').val(c['clave']);
        $('#dlg-distri').attr('checked',true);
        $('#dlg-clave-label').attr('readonly',true);
        $('#dlg-clave').attr('readonly',true);
    }
    else{
        $('#dlg-clave-label').hide();
        $('#dlg-clave').hide();
    }
    $('#dlg-fecha').val(c['fecha_alta']);
    $('#dlg-comercial').val(c['nombre_comercial']);
    $('#dlg-nombre').val(c['nombre']);
    $('#dlg-razon').val(c['razon_social']);
    $('#dlg-apellidos').val(c['apellidos']);
    $('#dlg-rfc').val(c['rfc']);
    $('#dlg-repre').val(c['representante']);
    $('#dlg-calle').val(c['calle_num']);
    $('#dlg-colonia').val(c['colonia']);
    $('#dlg-cp').val(c['cp']);
    $('#dlg-estado').html(c['estado']+'<span class="caret"></span>');
    $('#dlg-ciudad').html(c['ciudad']+'<span class="caret"></span>');
    estados.forEach(function(e){
        if(c['estado']==e['nombre']){
            e['ciudades'].forEach(function(ciudad){
                $('#dlg-ciudad-menu').append('<li><a tabindex="-1" href="javascript:void(0);" class="drop-ciudad">'+ciudad+'</a></li>');
            });
        }
    });
    $('#dlg-obs').val(c['observaciones']);
    $('#dlg-paq').html(c['paqueteria']+'<span class="caret"></span>');
    c['telefonos'].forEach(function(t){
        telefonos = telefonos + '<tr><td><input class="tel-modal" name="telefono'+ ($('#dlg-tabla-body').find('tr').length+1)+'" value="'
                              + t['telefono'] +'"/></td>' 
                              + '<td><input class="ext-modal" value="'
                              + t['extension'] 
                              + '"/></td><td>'
                              + '<div class="dropdown drop-empresa-tel">'
                              +'<a class="btn dropdown-toggle empresa-tel" data-toggle="dropdown" href="#" onclick="return false;">'+ t['empresa'] +'<span class="caret"></span></a>'
                              +'<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel" id="dlg-empresa-tel">'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">fijo</a></li>'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">telcel</a></li>'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">movistar</a></li>'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">nextel</a></li>'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">iusacell</a></li>'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">unefon</a></li>'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">otro</a></li>'
                              +'</ul>'
                              +'</div>'
                              + '</td><td><div class="btn btn-danger elimina-tel">eliminar<div></td></tr>';
    });
    $('#dlg-tabla-body').html(telefonos);
    c['correos'].forEach(function(c){
        correos = correos + '<tr><td class="col-correo"><input class="correo-modal" name="correo'+ ($('#dlg-tabla-body2').find('tr').length+1)+'" value="'
                          + c['correo'] +'"/></td>'
                          + '<td class="col-correo-eli"><div class="btn btn-danger elimina-correo">eliminar<div></td></tr>';
    });
    $('#dlg-tabla-body2').html(correos);
    $('.dropdown').removeClass('open');
}
function llenaForma2(fecha){
    $('#forma-modal').addClass('form-inline');
    $('#dlg-id').val('Nuevo');
    $('#dlg-fecha').val(fecha);
    //moral por default
    $('#dlg-moral').attr('checked',true);
    $('#dlg-razon-label').show();
    $('#dlg-razon').show();
    $('#dlg-nombre-label').hide();
    $('#dlg-nombre').hide();
    $('#dlg-apellidos-label').hide();
    $('#dlg-apellidos').hide();
    $('#dlg-clave').hide();
    $('#dlg-clave-label').hide();
    $('#dlg-rfc-label').css('margin-left','500px');
    $('#dlg-moral-label').css('text-decoration','underline');
    $('#dlg-moral-label').css('text-decoration-color','red');
    $('#titulo-titulo').html('&nbsp<span class="caret"></span>');
    $('#dlg-estado').html('&nbsp<span class="caret"></span>');
    $('#dlg-ciudad').html('&nbsp<span class="caret"></span>');
    $('#dlg-paq').html('&nbsp<span class="caret"></span>');
    $('.dropdown').removeClass('open');
}
function vaciaForma(){
    $('#forma-modal').removeClass('cliente-modal-forma');
    $('#forma-modal').removeClass('form-inline');
    $('#dlg-id').val('');
    $('#dlg-moral').attr('checked',false);
    $('#dlg-moral-label').css('text-decoration','none');
    $('#dlg-fisica').attr('checked',false);
    $('#dlg-fisica-label').css('text-decoration','none');
    $('#dlg-distri-label').css('text-decoration','none');
    $('#dlg-distri').attr('checked',false);
    $('#dlg-clave').val('');
    $('#dlg-fecha').val('');
    $('#dlg-nombre').val('');
    $('#dlg-razon').val('');
    $('#dlg-apellidos').val('');
    $('#dlg-rfc').val('');
    $('#dlg-repre').val('');
    $('#dlg-calle').val('');
    $('#dlg-colonia').val('');
    $('#dlg-cp').val('');
    $('#dlg-ciudad').html('');
    $('#dlg-ciudad-menu').html('');
    $('#dlg-estado').html('');
    $('#dlg-estado-menu').addClass('dropdown-menu');
    $('#dlg-obs').val('');
    $('#dlg-paq').html('');
    $('#dlg-tabla-body').html('');
    $('#dlg-tabla-body2').html('');
    $('.aceptar-modal').removeAttr('id');
    $('#dlg-distri').removeAttr('disabled');
    $('input').removeAttr('readonly');
    
}

function agregaEventos(){
    $('.drop-opcion-titulo').bind('click', function(e) {
        e.preventDefault();
        $('#titulo-titulo').html($(this).html()+'<span class="caret"></span>');
        $("#forma-modal").validate().element("#tituloinput");
    });
    $('#dlg-moral').bind('click', function(){
        $('#dlg-fisica-label').css('text-decoration','none');
        $('#dlg-moral-label').css('text-decoration','underline');
        $('#dlg-moral-label').css('text-decoration-color','red');
        $('#dlg-razon-label').show();
        $('#dlg-razon').show();
        $('#dlg-nombre-label').hide();
        $('#dlg-nombre').hide();
        $('#dlg-apellidos-label').hide();
        $('#dlg-apellidos').hide();
        $('#dlg-rfc-label').css('margin-left','500px');
    });
    $('#dlg-fisica').bind('click', function(){
        $('#dlg-moral-label').css('text-decoration','none');
        $('#dlg-fisica-label').css('text-decoration','underline');
        $('#dlg-fisica-label').css('text-decoration-color','red');
        $('#dlg-nombre-label').show();
        $('#dlg-nombre').show();
        $('#dlg-apellidos-label').show();
        $('#dlg-apellidos').show();
        $('#dlg-razon-label').hide();
        $('#dlg-razon').hide();
        $('#dlg-rfc-label').css('margin-left','0px');
    });
    $('#dlg-distri').bind('click', function(){
         if($('#dlg-distri').prop('checked')){
             $('#dlg-distri-label').css('text-decoration','underline');
             $('#dlg-distri-label').css('text-decoration-color','red');
             $('#dlg-clave').show();
             $('#dlg-clave-label').show();
         }
         else{
             $('#dlg-distri-label').css('text-decoration','none');
             if($('#dlg-id').attr('readonly')!='readonly')
                 $('#dlg-clave').val('');
             $('#dlg-clave').hide();
             $('#dlg-clave-label').hide();
         }
    });
    $('#nuevo-telefono').bind('click', function(){
        $(this).parent().find('tbody').append('<tr><td><input class="tel-modal" name="telefono'+ ($('#dlg-tabla-body').find('tr').length+1)+'" value=""/></td>' 
                              + '<td><input class="ext-modal" name="extension" value=""/></td><td>'
                              +'<input class="oculto empresa-modal" name="telempresainput'+($('#dlg-tabla-body').find('tr').length+1)+'" id="telempresainput'+($('#dlg-tabla-body').find('tr').length+1)+'">'
                              + '<div class="dropdown drop-empresa-tel">'
                              +'<a class="btn dropdown-toggle empresa-tel" data-toggle="dropdown" href="#" onclick="return false;">&nbsp<span class="caret"></span></a>'
                              +'<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel" id="dlg-empresa-tel">'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">Fijo</a></li>'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">Telcel</a></li>'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">Movistar</a></li>'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">Nextel</a></li>'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">Iusacell</a></li>'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">Unefon</a></li>'
                              +'<li><a tabindex="-1" href="javascript:void(0);" class="drop-opcion-empresa-tel">Otro</a></li>'
                              +'</ul>'
                              +'</div>'
                              + '</td><td><div class="btn btn-danger elimina-tel">eliminar<div></td></tr>');
        funcionBotonEliminaTelefono();
        funcionDropEmpresaTel();
        funcionValidarDinamicos();
    });
    $('#nuevo-correo').bind('click', function(){
       $(this).parent().find('tbody').append('<tr><td class="col-correo"><input class="correo-modal" value=""/></td><td class="col-correo-eli"><div class="btn btn-danger elimina-correo">eliminar<div></td></tr>');
       funcionBotonEliminaCorreo();
       funcionValidarDinamicos();
    });
    funcionDropEstado();
    funcionDropCiudad();
    funcionDropEmpresaTel();
    funcionBotonEliminaTelefono();
    funcionBotonEliminaCorreo();
    funcionDropPaq();
}
function funcionBotonEliminaCorreo(){
    $('.elimina-correo').unbind('click');
    $('.elimina-correo').bind('click',function(){
        var elemento = $(this).parent().parent();
        $('#borde-int-confirmar').html('<br><br>¿Está seguro que <br><br>desea eliminar el correo<br><br>'
                                        + elemento.find('.correo-modal').val()+'?'
                                        +'<div class="btn btn-success" id="confirmar-cambios">Eliminar</div><div class="btn btn-danger" id="cancelar-cambios">Cancelar</div>');
        if(elemento.find('.correo-modal').val().length>0)
        {
            $('#cancelar-cambios').bind('click',function(){ 
                $('#confirmar-cambios-modal').bPopup().close();
            });
            $('#confirmar-cambios').bind('click',function(){
                elemento.remove();
                $('#confirmar-cambios-modal').bPopup().close();
            });
            $('#confirmar-cambios-modal').bPopup({ 
                speed: 200,
                transition: 'slideDown',onClose: function(){
                    $('#cancelar-cambios').unbind('click');
                    $('#confirmar-cambios').unbind('click');
                }
            }); 
        }
        else{
            elemento.remove();
        }
    }); 
}
function funcionBotonEliminaTelefono(){
    $('.elimina-tel').unbind('click');
    $('.elimina-tel').bind('click',function(){
        var elemento = $(this).parent().parent();
        $('#borde-int-confirmar').html('<br><br>¿Está seguro que <br><br>desea eliminar el telefono<br><br>'
                                        + elemento.find('.tel-modal').val()+'?'
                                        +'<div class="btn btn-success" id="confirmar-cambios">Eliminar</div><div class="btn btn-danger" id="cancelar-cambios">Cancelar</div>');
        if(elemento.find('.tel-modal').val().length>0)
        {
            $('#cancelar-cambios').bind('click',function(){ 
                $('#confirmar-cambios-modal').bPopup().close();
            });
            $('#confirmar-cambios').bind('click',function(){
                elemento.remove();
                $('#confirmar-cambios-modal').bPopup().close();
            });
            $('#confirmar-cambios-modal').bPopup({ 
                speed: 200,
                transition: 'slideDown',onClose: function(){
                    $('#cancelar-cambios').unbind('click');
                    $('#confirmar-cambios').unbind('click');
                }
            }); 
        }
        else{
            elemento.remove();
        }
    }); 
}
function funcionDropCiudad(){
    $('.drop-ciudad').bind('click',function(){ 
        $('#dlg-ciudad').html($(this).text()+'<span class="caret"></span>');
         $("#forma-modal").validate().element("#ciudadinput");
    });
}
function funcionDropEstado(){
    $('.drop-estado').bind('click',function(){ 
        var nombre = $(this).text();
        $('#dlg-estado').html(nombre+'<span class="caret"></span>');
        $('#dlg-ciudad-menu').html('');
        $('#dlg-ciudad').html('&nbsp<span class="caret"></span>');
        estados.forEach(function(e){
            if(nombre==e['nombre']){
                e['ciudades'].forEach(function(ciudad){
                    $('#dlg-ciudad-menu').append('<li><a tabindex="-1" href="javascript:void(0);" class="drop-ciudad">'+ciudad+'</a></li>');
                });
            }
        });
        funcionDropCiudad();       
        $("#forma-modal").validate().element("#estadoinput");
    });
}
function funcionDropEmpresaTel(){
    $('.drop-opcion-empresa-tel').bind('click',function(){ 
        $(this).parent().parent().parent().find('.empresa-tel').html($(this).text()+'<span class="caret"></span>');
        var elemento = $(this).parent().parent().parent().parent().find('.empresa-modal');
        $("#forma-modal").validate().element('#'+elemento.attr('id'));
    });
}
function funcionDropPaq(){
    $('.drop-paq').bind('click',function(){ 
        $('#dlg-paq').html($(this).text()+'<span class="caret"></span>');
        $("#forma-modal").validate().element("#paqinput");
    });
}
function cerrandoModal(){
    $('.tooltip').hide();
//    $('input').each(function(){
//        $(this).tooltip("destroy"); //se destruyen los tooltips de la validacion
//    });
    $('#contenido-forma').html($('#dlg-modal #contenido').html());
    $('#dlg-modal #contenido').html('');
    vaciaForma();
}
/////////////////////////////////////////
/////////////////////////////////////////
//Fin llenado de informacion  y eventos//
function filtroDeTabla(){
    tabla = $("#tabla-principal").dataTable({
        "sPaginationType": "full_numbers",
        "oLanguage": {
            "sSearch": "Filtrar con el texto: _INPUT_",
            "sLengthMenu": "Registros visibles: _MENU_",
            "oPaginate": {
                "sNext": "Siguiente",
                "sPrevious": "Anterior",
                "sFirst": "Primera",
                "sLast": "Ultima"
            },
            "sInfo": "Mostrando   _START_ a _END_   de un total de _TOTAL_ registros",
            "sInfoFiltered": "(filtrados de _MAX_ registros totales)"
        }
    });
    tabla.columnFilter({
        aoColumns: [{ type: "number" },
                    { type: "text" },
                    { type: "select", values: [ 'Si', 'No']}]
    });
}
function clickRenglon(){
    tabla.$('tr').on('click',function(){
        $('#tabla-principal tr.seleccionado').removeClass('seleccionado');
        $(this).addClass('seleccionado');
        activo = $(this).find('.id-tabla').text();
        $('#seleccion').text('Registro '+activo);
        $('.dos-botones .btn').removeAttr('disabled');
        //itabla = oTable.fnGetPosition(this);
    });
    tabla.$('tr').on('dblclick',function(){
        $('#tabla-principal tr.seleccionado').removeClass('seleccionado');
        $(this).addClass('seleccionado');
        activo = $(this).find('.id-tabla').text();
        $('#seleccion').text('Registro '+activo);
        $('.dos-botones .btn').removeAttr('disabled');
        //itabla = oTable.fnGetPosition(this);
        funcionModificar(activo);
    });
    
//    $('#tabla-principal tr').on('click',function(){
//        $('#tabla-principal tr.seleccionado').removeClass('seleccionado');
//        $(this).addClass('seleccionado');
//        activo = $(this).find('.id-tabla').text();
//        $('#seleccion').text('Registro '+activo);
//        $('.dos-botones .btn').removeAttr('disabled');
//        //itabla = oTable.fnGetPosition(this);
//    });
//    $('#tabla-principal tr').on('dblclick',function(){
//        $('#tabla-principal tr.seleccionado').removeClass('seleccionado');
//        $(this).addClass('seleccionado');
//        activo = $(this).find('.id-tabla').text();
//        $('#seleccion').text('Registro '+activo);
//        $('.dos-botones .btn').removeAttr('disabled');
//        //itabla = oTable.fnGetPosition(this);
//        funcionModificar(activo);
//    });
}
function quitaClickRenglon()
{
    tabla.$('tr').off();
}